Highly advanced computing is performed in high-performance computing (HPC) by using a large number of computing nodes, and each computing node has a large number of processor cores. When an application program (hereinafter, simply referred to as an app) is run in such HPC, the number of computing nodes (the number of nodes) to be used in a job for running the app and the number of processes to be generated are designated as running conditions.
Appropriate running conditions are determined by considering various factors such as processing speed and power consumption. For example, if processing speed is high, but if excessive power is consumed, the running conditions are not appropriate. That is, running conditions leading to values balanced in a plurality of indexes for determination are appropriate.
Obtaining appropriate running conditions is one of optimization issues. Various solution methods are conceived for the optimization issues related to computer systems. For example, a solution searching device able to search for an optimum solution efficiently and reliably in fields of optimum designing, system identification, image reconfiguration, and optimum control is disclosed. In addition, a technology related to a method for efficiently performing apparatus adjustment considered to be optimum for a user in an optimization adjustment method using a genetic algorism is disclosed. Further, a network system that implements fair services with guaranteed performance in a system that provides processing services such as high-calculation-load web services is disclosed. The examples of the related art are Japanese Laid-open Patent Publication Nos. 06-149866, 2003-050987, and 2003-058518.
The degree of running time reduction achieved by increasing the degree of parallel processing in app running depends on the app, and appropriate running conditions thus depend on the app. To obtain appropriate running conditions (combination of values of designated items such as the number of nodes, the number of processes, and the number of threads) for a specific app, the app is actually run. In this case, if the app is run by using all of usable nodes and under all of conceivable running conditions and if processing times and processing efficiencies are compared, it is possible to find appropriate running conditions leading to higher performance of the app. However, since an increase of the number of nodes and mainstreaming of multicores in recent years has led to an increase of combinations of values of the items designated as running conditions, it is difficult to run the app in a large scale system under all of the running conditions. Note that such an issue arises in not only apps but also any program capable of parallel processing.
In one aspect, an object of the present disclosure is to efficiently calculate an appropriate running condition for a program.